﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Threading;
using System.ComponentModel;

namespace bd2wpf
{
    /// <summary>
    /// Логика взаимодействия для Connect.xaml
    /// </summary>
    public partial class Connect : Window
    {
        private MainWindow parent;//Ссылка на родителя
        public Connect()
        {
            InitializeComponent();
        }
        public void setparent(MainWindow link)//функция получающая ссылку на родителя
        {
            parent = link;
        }
        void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)//Что выполнить после завершения процесса 
        {
            //кнопки интерфейса сделать активными, спрятать прогресс бар
            parent.Save.IsEnabled = true;
            parent.Add.IsEnabled = true;
            parent.SearchB.IsEnabled = true;
            parent.Delete.IsEnabled = true;
            parent.SaveM.IsEnabled = true;
            parent.Disconnect.IsEnabled = true;
            parent.SearchM.IsEnabled = true;
            parent.dataGrid1.Items.Refresh();
            parent.progressBar.Visibility = System.Windows.Visibility.Hidden;
        }

        static BackgroundWorker bw;
        private void Connect_Click(object sender, RoutedEventArgs e)
        {
            parent.url = DB_text.Text;//Сылка на сервер
            parent.progressBar.Visibility = System.Windows.Visibility.Visible;
            bw = new BackgroundWorker();
            bw.WorkerReportsProgress = true;
            bw.DoWork += parent.Connect_url;//Выполнить в процессе метод Connect_url
            bw.RunWorkerCompleted += bw_RunWorkerCompleted;//При завершении выполнить bw_RunWorkerCompleted
            bw.RunWorkerAsync(null);
            this.Close();

        }

        private void Cansel_Click(object sender, RoutedEventArgs e)//Отмена подключения
        {
            this.Close();
        }
    }
}
